package org.ccay.message;

import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.ccay.core.base.BaseResourceVO;

/**
 * 
 * 消息推送VO
 * 
 * @author chaowangbang
 * @since 2012-11-2
 */
public class PushMessageVO extends BaseResourceVO {

	private static final long serialVersionUID = -4197819295395302872L;

	/** 消息id **/
	private int messageId;
	/** 消息类型导入 导出 **/
	private String messageType;
	/** 消息样式询问 提示 警告 错误 等 **/
	private String messageStyle;
	/** 消息标题 **/
	private String messageTitle;
	/** 消息模板自定义富文本配置类型 PushMessage 二级类型 **/
	private String messageTemplate;
	/**
	 * 消息接收者 用户id
	 * **/
	private String messageReceiver;
	/**
	 * 消息级别 1：重要,级别最高 2：一般，级别中等 3：提示，级别最低
	 * **/
	private Integer messageLevel;
	/**
	 * 消息标记 是否过期不提示 或者已经提示过了 0：未推送 1：已推送 2：未读 3：已读 4：动态菜单,我的工作空间上面 推送出来的任务个数
	 * **/
	private Integer messageFlag;

	/** 消息过期时间 数据字典配置有效期常量， 创建消息时 去数据字典获取数据计算后，保存过期时间到本字段 **/
	private Date messageOverdue;

	/** 消息图标 根据消息样式 创建消息时 去数据字典获取配置，保存图片路径到本字段 **/
	private String messageIco;

	/**
	 * 用于Velocity的绑定对象的名字和对象的Mapping
	 */
	private Map<String, Serializable> bindItems = new HashMap<String, Serializable>();

	public int getMessageId() {
		return messageId;
	}

	public void setMessageId(int messageId) {
		this.messageId = messageId;
	}

	public String getMessageType() {
		return messageType;
	}

	public void setMessageType(String messageType) {
		this.messageType = messageType;
	}

	public String getMessageStyle() {
		return messageStyle;
	}

	public void setMessageStyle(String messageStyle) {
		this.messageStyle = messageStyle;
	}

	public String getMessageTitle() {
		return messageTitle;
	}

	public void setMessageTitle(String messageTitle) {
		this.messageTitle = messageTitle;
	}

	public String getMessageTemplate() {
		return messageTemplate;
	}

	public void setMessageTemplate(String messageTemplate) {
		this.messageTemplate = messageTemplate;
	}

	public String getMessageReceiver() {
		return messageReceiver;
	}

	public void setMessageReceiver(String messageReceiver) {
		this.messageReceiver = messageReceiver;
	}

	public Integer getMessageLevel() {
		return messageLevel;
	}

	public void setMessageLevel(Integer messageLevel) {
		this.messageLevel = messageLevel;
	}

	public Integer getMessageFlag() {
		return messageFlag;
	}

	public void setMessageFlag(Integer messageFlag) {
		this.messageFlag = messageFlag;
	}

	public Date getMessageOverdue() {
		return messageOverdue;
	}

	public void setMessageOverdue(Date messageOverdue) {
		this.messageOverdue = messageOverdue;
	}

	public String getMessageIco() {
		return messageIco;
	}

	public void setMessageIco(String messageIco) {
		this.messageIco = messageIco;
	}

	public Map<String, Serializable> getBindItems() {
		return bindItems;
	}

	public void setBindItems(Map<String, Serializable> bindItems) {
		this.bindItems = bindItems;
	}
	
	public void addBindItem(String key,Serializable svo) {
		bindItems.put(key, svo);
	}
}
